package com.soecode.lyf.config;

import java.io.Console;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.json.JSONException;
import org.json.JSONObject;
import org.junit.Test;

import com.github.qcloudsms.SmsSingleSender;
import com.github.qcloudsms.SmsSingleSenderResult;
import com.github.qcloudsms.httpclient.HTTPException;
import com.soecode.lyf.entity.Msg;

public class SmsUtil {
	public Msg sendMsg(String phone, int code) {
	// 短信应用SDK AppID
	int appid = 1400198405; // 1400开头

	// 短信应用SDK AppKey
	String appkey = "6befaf37ba2a5a56f4a10d60c6b9e29c";

	// 需要发送短信的手机号码
	String[] phoneNumbers = {phone};

	// 短信模板ID，需要在短信应用中申请
	int templateId = 427414; // NOTE: 这里的模板ID`7839`只是一个示例，真实的模板ID需要在短信控制台中申请

	// 签名
	String smsSign = "知客网"; // NOTE: 这里的签名"腾讯云"只是一个示例，真实的签名需要在短信控制台中申请，另外签名参数使用的是`签名内容`，而不是`签名ID
		 Msg msg = new Msg();
		try {
			String code1=String.valueOf(code);
			 String[] params = {code1,"1"};
			    SmsSingleSender ssender = new SmsSingleSender(appid, appkey);
			    SmsSingleSenderResult result = ssender.sendWithParam("86", phoneNumbers[0],
			        templateId, params, smsSign, "", "");  // 签名参数未提供或者为空时，会使用默认签名发送短信
			    System.out.println(result);
			    JSONObject jsonObject = new JSONObject(result.toString());
			    int recode = jsonObject.getInt("result");
			    switch (recode) {
                case 0:
                    msg.setCode(1000);
                    msg.setMsg("短信验证码发送成功！");
                   // success();
                    break;
                case 1016:
                    msg.setCode(1016);
                    msg.setMsg("手机号格式错误！");
                    break;
                case 1023:
                    msg.setCode(1023);
                    msg.setMsg("请在60s后重试！");//30s内短信已达上限！
                    break;
                case 1024:
                    msg.setCode(1024);
                    msg.setMsg("请在1小时后重试！");//1小时内短信已达上限
                    break;
                default:
                    msg.setCode(1001);
                    msg.setMsg("错误码" + recode + ",请带上您的错误码反馈给客服");
            }
		} catch (HTTPException e) {
			// HTTP响应码错误
			e.printStackTrace();
		} catch (JSONException e) {
			// json解析错误
			e.printStackTrace();
		} catch (IOException e) {
			// 网络IO错误
			e.printStackTrace();
		}
		 return msg;
	}
}
